package com.gxh.service;

import com.gxh.dto.RequestMachinePageQueryDTO;
import com.gxh.dto.UploadMachinePageQueryDTO;
import com.gxh.dto.UserMachineDTO;
import com.gxh.dto.UserRequestMachineDTO;
import com.gxh.result.PageResult;
import com.gxh.vo.UserMachineDetailVO;
import com.gxh.vo.UserMachineItemVO;
import com.gxh.vo.UserRequestMachineDetailVO;
import com.gxh.vo.UserRequestMachineVO;

import java.util.List;

public interface UserMachineService {
    /**
     * 上传用户设备信息
     * @param userMachineDTO
     */
    void upload(UserMachineDTO userMachineDTO);

    /**
     * 用户求购设备
     * @param userRequestMachineDTO
     */
    void request(UserRequestMachineDTO userRequestMachineDTO);

    /**
     * 用户设备列表
     *
     * @param status
     * @return
     */
    List<UserMachineItemVO> list(Integer status);

    /**
     * 用户求购设备列表
     * @param status
     * @return
     */
    List<UserRequestMachineVO> listRequest(Integer status);

    /**
     * 用户设备详情
     * @param id
     * @return
     */
    UserRequestMachineDetailVO requestDetail(Long id);

    /**
     * 用户上传设备详情
     * @param id
     * @return
     */
    UserMachineDetailVO uploadDetail(Long id);

    /**
     * 用户上传设备分页查询
     * @param userMachinePageQueryDTO
     * @return
     */
    PageResult uploadPage(UploadMachinePageQueryDTO userMachinePageQueryDTO);

    /**
     * 用户上传设备处理
     * @param status
     * @param id
     */
    void uploadStatus(Integer status, Long id);

    /**
     * 批量删除用户上传设备
     * @param ids
     */
    void deleteBatch(List<Long> ids);

    /**
     * 用户求购设备分页查询
     * @param requestMachinePageQueryDTO
     * @return
     */
    PageResult requestPage(RequestMachinePageQueryDTO requestMachinePageQueryDTO);

    /**
     * 用户求购设备处理
     * @param status
     * @param id
     */
    void requestStatus(Integer status, Long id);

    /**
     * 批量删除用户求购设备
     * @param ids
     */
    void deleteRequestBatch(List<Long> ids);
}
